# 创建蓝图  和接收用到的request和返回用到的jsonify
from flask import Blueprint,request,jsonify
# 导出db里面的db1方法
from db import db1
# 加密密码用到的 加密解密方法
from werkzeug.security import generate_password_hash,check_password_hash

from p6.pro.main import Cate
# 创建蓝图
bp_auser = Blueprint("auser",__name__)
# json包
import json

#初始化数据
@bp_auser.route('/reg')
def reg():
    password = generate_password_hash('123')
    sql1 = "insert into auser values(0,'zs','%s','村奇才佣兵租赁发要奇才')"%(password)
    db1.insert(sql1)
    
    sql2 = "insert into auser values(0,'li','%s','李四的他性签名')"%(password)

    db1.insert(sql2)
    return 'ok'

#登录接口
@bp_auser.route('/login',mehtods=['POST'])
def login():
    #获取用户名密码
    data = request.data
    if data:
        data = json.loads(data)
    else:
        data = request.form
    #去数据查询根据用户名
    sql = "select * from auser where username='%s'"%(data['username'])
    res = db1.find(sql)
    #比对密码
    if res:
        #返回结果，userid
        if check_password_hash(res['password'],data['password']):
            return jsonify({"code":200,'userid':res['id']})
        else:
            return jsonify({"code":10010,'mes':'密码错误'})
    return jsonify({"code":10011,'mes':'用户不存在'})

def get_data():
    data = request.data
    if data:
        data = json.loads(data)
    else:
        data = request.form
    return data

@bp_auser.route('/articleM',methods=['POST','GET'])
def articleM():
    if request.method == "POST":
        #获取用户输入
        data = get_data()
        #构造sql添加
        sql = "insert into article(title,content,userid) values('%s','%s',%d)"%(data['title'],data['content'],int(data['userid']))
        db1.insert(sql)
        #返回结果
        return jsonify({"code":200})
    else:
        #判断获取所有文章还是我的文章
        uid = int(request.args.get('uid'))
        if uid>0:
            sql = "select * from article where userid=%d"%(int(uid))
        else:
            sql = "select * from article"
        res = db1.findall(sql)
        return jsonify({"code":200,'list':res})










# 分页的要求
# # 一共有多少页
# cou = 表名.query.count()
# # 每页显示多少条数据
# page_size = 2
# # 你要看第几页
# page = request.args.get('page')
# # 一共有多少页
# ceil(total/page_size)
# start=(page-1)*page_size
# Cate.query.filter_by(age=18).offset(start).limit(page_size)
